/**
 * 权限路由映射配置
 * 定义权限模块与路由的对应关系
 */

// 权限模块定义 - 与一级菜单保持一致
export const PERMISSION_MODULES = {
  HOME: 'home',                          // 首页
  DATA_MANAGEMENT: 'data-management',     // 数据管理  
  DATA_SEARCH: 'data-search',            // 数据检索
  OPERATION_MANAGEMENT: 'operation-management', // 运行管理
  USER_MANAGEMENT: 'user-management'      // 用户管理
} as const;

// 权限模块中文名称映射
export const PERMISSION_MODULE_NAMES = {
  [PERMISSION_MODULES.HOME]: '首页',
  [PERMISSION_MODULES.DATA_MANAGEMENT]: '数据管理',
  [PERMISSION_MODULES.DATA_SEARCH]: '数据检索', 
  [PERMISSION_MODULES.OPERATION_MANAGEMENT]: '运行管理',
  [PERMISSION_MODULES.USER_MANAGEMENT]: '用户管理'
} as const;

// 路由权限映射配置 - 与一级菜单保持一致
export const ROUTE_PERMISSION_MAP = {
  // 首页 - 所有用户都可访问
  '/': [],
  '/home': [],

  // 数据管理模块
  '/data-management': [PERMISSION_MODULES.DATA_MANAGEMENT],
  '/anomaly-detection': [PERMISSION_MODULES.DATA_MANAGEMENT],
  '/release-history': [PERMISSION_MODULES.DATA_MANAGEMENT],
  '/release-detail/:id': [PERMISSION_MODULES.DATA_MANAGEMENT],

  // 数据检索模块
  '/data-search': [PERMISSION_MODULES.DATA_SEARCH],
  '/pds-service': [PERMISSION_MODULES.DATA_SEARCH],
  '/pds-data': [PERMISSION_MODULES.DATA_SEARCH],

  // 原信息统计模块的功能转移到运行管理
  '/type-config': [PERMISSION_MODULES.OPERATION_MANAGEMENT],
  '/zh-en-config': [PERMISSION_MODULES.OPERATION_MANAGEMENT],
  '/disk-path-config': [PERMISSION_MODULES.OPERATION_MANAGEMENT],
  '/download-order': [PERMISSION_MODULES.OPERATION_MANAGEMENT],
  '/my-favorites': [PERMISSION_MODULES.OPERATION_MANAGEMENT],

  // 运行管理模块
  '/dir-management': [PERMISSION_MODULES.OPERATION_MANAGEMENT],

  // 用户管理模块
  '/user-management': [PERMISSION_MODULES.USER_MANAGEMENT],

  // 3D地球演示 - 所有用户都可访问
  '/gis': []
} as const;

// 菜单项权限配置 - 用于控制菜单显示，与一级菜单保持一致
export const MENU_PERMISSION_MAP = {
  'home': [],
  'data-management': [PERMISSION_MODULES.DATA_MANAGEMENT],
  'data-search': [PERMISSION_MODULES.DATA_SEARCH],
  'operation-management': [PERMISSION_MODULES.OPERATION_MANAGEMENT],
  'user-management': [PERMISSION_MODULES.USER_MANAGEMENT],
  'gis': []
} as const;

// 权限级别定义
export const USER_LEVELS = {
  ADMIN: 1,        // 管理员 - 拥有所有权限
  OPERATOR: 2      // 操作员 - 拥有操作权限
} as const;

// 级别对应的默认权限 - 管理员(1级)拥有所有权限
export const LEVEL_DEFAULT_PERMISSIONS = {
  [USER_LEVELS.ADMIN]: [
    PERMISSION_MODULES.HOME,
    PERMISSION_MODULES.DATA_MANAGEMENT,
    PERMISSION_MODULES.DATA_SEARCH,
    PERMISSION_MODULES.OPERATION_MANAGEMENT,
    PERMISSION_MODULES.USER_MANAGEMENT
  ],
  [USER_LEVELS.OPERATOR]: [
    PERMISSION_MODULES.HOME,
    PERMISSION_MODULES.DATA_MANAGEMENT,
    PERMISSION_MODULES.DATA_SEARCH,
    PERMISSION_MODULES.OPERATION_MANAGEMENT
  ]
} as const;

export type PermissionModule = typeof PERMISSION_MODULES[keyof typeof PERMISSION_MODULES];
export type UserLevel = typeof USER_LEVELS[keyof typeof USER_LEVELS];